import pytest
from demo import demo

# 夹具的参数
# scope 作用域
    # function 函数级别, 默认值(针对某个函数进行夹)
    # class 类级别, 针对一个类进行夹
    # module 模块级别, 针对一个模块进行夹
    # session [推荐]会话级别(一次完整的自动化测试进行夹)(一次完整自动化测试就是和服务器的一次对话)
# autouse 自动使用(无需手动引用)
    # False 默认值
    # True 代表会自动使用

@pytest.fixture(scope="session", autouse=True)
def f():
    print("初始化")
    yield
    print("销毁资源")

class TestDemo:
    def test_a(self):
        print(1)
        assert demo("猴") == "孙悟空"

    def test_b(self):
        assert demo("猪") == "猪八戒"

    def test_c(self):
        assert demo("马") == "小白龙"

# list1 = [1,2,3]
#
# # 直接用 next() 传入可迭代对象会报错, 因为它不是一个迭代器对象
#
# iter1= iter(list1) # 得到一个迭代器对象
#
# # 逐个获取迭代器里面的元素
# next(iter1) # 输出: 1
# next(iter1) # 输出: 2
# next(iter1) # 输出: 3

# def gen():
#     while True:
#         print("我先干点啥,干完之后获取数据")
#         yield print("生成内容")   # 遇到该关键字就先返回结果
#         print("获取数据之后,我再干点啥")
#
# iter2 = gen()
# next(iter2)
# next(iter2)


# # 生成器函数：按需生成数字的平方
# def number_square_generator(n):
#     for i in range(n):
#         yield i ** 2  # 用 yield 逐个“生产”结果
#
# # 使用生成器（不会一次性算完所有平方）
# for square in number_square_generator(10):
#     print(square)